/*This class represents an object for the restaurant's guest*/
#include "Order.h"
#include <string>
using namespace std;

class Guest{
 
public:
	//Default Constructor	
	Guest();
	//Copy Constructor
	Guest(const Guest&);
	//Destructor
	~Guest();
	//Assignment  Operator
	const Guest& Guest::operator=(const Guest&);
	
	//Constructor
	Guest(const string fc,const string mc,const string desert, const string beveage);

/*------------------------------------------*/
const void eraseDesert();
const string getDesert() const;
const void setDesert(const string newdes);
/*------------------------------------------*/
const void setFirstCourse(const string  newdes);
const void eraseFirstCourse();
const string getFirstCourse() const;
/*------------------------------------------*/
const void setMainCourse(const string  newdes);
const void eraseMainCourse() ;
const string getMainCourse() const;
/*------------------------------------------*/
const void setBeverage(const string  newdes);
const void eraseBeverage();
const string getBeverage() const;
/*------------------------------------------*/
const int getGuestNum()const ;
const void setGuestNum(const int i);
const static  int getUniqueCounter() ;
static void IncUniqueCounter();

const  bool getHasOrder()const ;
const void setOrderBool(const bool b);
const void setOrder(Order o);

private:
	Order O;
	static int uniqueCounter;
	const Guest& Guest::assign(const Guest& g);
	int guestNum;
	bool hasOrder;
};